// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.Collections;
// import java.util.List;
#pragma once
#include <string>
#include <list>
#include "SQLNumericLiteralExpr.h"
#include "SQLValuableExpr.h"
#include "../../../utils/common_ptr.h"
class SQLASTVisitor;

class SQLTinyIntExpr : public SQLNumericLiteralExpr, virtual public SQLValuableExpr
{
public:
  uint16_t value;

  SQLTinyIntExpr();

  SQLTinyIntExpr(uint16_t value);

  SQLTinyIntExpr(string_ptr  value);
  SHAREDOBJECT(SQLTinyIntExpr);

  virtual SQLObject_ptr clone();

  // @Override
  SQLObject_list_ptr  getChildren();

  // @Override
  double getNumber();

  // @Override
  uint16_t getValue();

  void setValue(uint16_t value);

  void accept0(SQLASTVisitor_ptr visitor);

  // @Override
  int hashCode();

  // @Override
  bool equals(Object_ptr obj);

  // @Override
  void setNumber(double number) override;
};
